身の内部でよぶんな日判をかけずに、 VMNet への接続を 要求する NIC の IRQ と、 VMM にただちに制御を戻す ことができる NIC の IRQ を特定できるようになる。 れら 3 つの最適化を組み合わせると、 733MHz CPU の イ反想マシンでの CPU の利用率を約 78 % にまて減らせる。 また、これらの最適化は 350MHz CPU のイ反想マシンで 達成可能なネットワーク・スルーブットを 2 倍以 - 日こ引 き上げる。 実験の結ホスト協調型イ瓦想化方式による CPU のオ ーバーヘッドのため、大量の I/O がともなうワークロー ドでは、イ瓦想マシンはネイテイプ・ハードウェアと同し性 能を達成できない可能生があることが分かった。単純な実 装では頻繁な I/O によって領域切替えが頻発し、ワーク ロードが CPU の性能に左右されるため、 I/O の利用率が みかけ上制限される。しかし、ホスト協調型イ廨課マシン・ アーキテクチャを糸財寺しつつも、よぶんな領域切替えをな くし、実質上強制的な切替えの構造を改善できる。それに より、 733MHz Pentium III システムでは CPU の利用 率か 1 咸少して十分な I/O 性能が達成できた。 CPU はどんどん高速化しており、 733MHz の Pen- tium III は現在の企業向け PC としてはエントリレベル かそれ以下である。さらに、 100Mbps のリンクカ症常的 に、もしくは頻繁に一になるワークロードはデスクトッ プ pc でははとんどありえない。ホスト協調型アーキテ クチャがもたらす可搬生や、デバイスの独立と共存を組 み合わせることで VMware Workstation が達成できる I/O 性能は、デスクトップ PC て使われる場合、性能と 互換生のバランスのとれた優れた折衷案となる。もちろん このバランスは、ギガビットのネットワークが一ヒすれ liCPU がどオレごけ速くなっているかに応して変化するだ ろう。 VMware Workstation のホスド協制司型イ應誤マシン・アーキテ クチャは、 Mendel Rosenblum 、 Edouard Bugnion 、 Scott Devine 、 Edward Wang が考案した。 Regis Duschene は、 ネットワーク・サプシステムに関するいくつかの描商化を考案し た。査読者からの有益な孑商により、本論文をよりよいものとす ることができた。そして、 VMware の社員らの熱じ、な貢物肋ゞなけ オ L ば、本論文は完成しなかっただろう。 [ 参考文献 ] 卩 } AMD Corporation, ル e れ Products: Ethernet UNIX MAGAZINE 2002.1 I/O デバイスの仮 controllet 、 s B00 ん 2 , 1998 [ 2 ] Terry L. Borden, James P. Hennessy and James 、 V. Rymarczyk, "Multiple Operating Systems on One Processor Complex ” , IBM Systems ノれ襯 , 28 ( 1 ) : 104 ー 123 , 1989 [ 3 ] Edouard Bugnion, Scott Devine, Kinshuk GO ⅵ 1 and MendeI Rosenblum, "Disco: Running Com- modity Operating Systems on Scalable Multipro- cessors ” A CM 7 テ佖れ s 佖 c 0 れ s 0 れ Com.〃社、 Systems, 15 ( 4 ) : 412 ー 447 , Nov. 1997 [ 4 ] R. J. Creasy, "The Origin of the VM / 370 Time- Sharing System' , IBM ノ 0 れ田 I 可月 ese の℃ん佖れ d De- velopment, 25 ( 5 ) : 483 ー 490 , Sept. 1981 [ 5 ] Robert P. Goldberg, "Survey of Virtual Machine Research ” IEEE Com盟、イ佖 40 れ e , 7 ( 6 ) : 34 ー 45 , 1974 [ 6 ] David Golub, Randall Dean, Allesandro Forin and Richard Rashid, "UNIX As An Application Pro- gram ” , in 、 ocee 市れ gs 可 USENIX プ 990 Surnmer Co れ / ℃れ ce , Jun. 1990 [ 7 ] peter H. Gum "System/ 370 Extended Architecture : facilities for Virtual Machines" IBM . ん可月← se 佖尾ん佖れ d Development, 27 ( 6 ) : 530 ー 544 , Nov. 1983 [ 8 ] Judith S. Hall and Paul T. R0binson, 。、 Virtualiz- ing the VAX Architecture" , in Proceedings 可ノ & ん スれれ社襯 / れ te ? 佖厖 0 れ S リ m 〃 OS を社 m 0 れ Com〃社 r ス 7 、 chitecture, pp. 380 ー 389 , ACM' Mar. 1991 [ 9 ] Hermann Härtig, Michael H0hmuth' Jochen Liedtke, Sebastian Schönberg and Jean W01ter' "The Performance of ß-Kernel-Based Systems ” , ⅲ PT ・ ocee 市れ gs 可 The ee れ S rn 〃 OS を社 m 0 れ 0 〃 e 観 9 System Principles, ACM' Oct. 1997 [ 10 ] lntel Corp. , lntel Architecture Developer's イの皿記 , V01. I, Ⅱ , III, 1998 [ 11 ] GeraId J. popek and R0bert P. G01dberg' 。。 FO mal Requirements For Virtualizable Third Genera- tion Architectures ” , Com?れ社れを c 佖 0 れ s 0 工 the ス CM 17 ( 7 ) : 412 ー 412 , Jul. 1974 「 Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor 」 Originally published in proceedings 可 the 2001 USENIX A れれ社 0 ー Technical C07 ゾ℃れ ce , Bost011' Massachusetts' USA, June 25 ー 30 2001 @Jeremy Sugerman, Ganesh Venkitachalam and Beng- Hong Lim, VMware, lnc. 175
ャネル、メモリアドレス或をイ瓦想マシンに割り当てられ る。これにより、 VMM を介さずにハードウェアか直接ゲ ストの I / O アクセスを処理できる。 Borden らは、この機 能を利用すれば、専用の I/O テパイスをもつイ瓦想マシン で、ネイテイプのハードウェアとの性能差 1 ~ 2 % 以内を 達成できると報告している。同様のパーティション機能を もっ PC べースのサーバー・プラットホームは、 VMware のイ瓦想マシンでこれを実現できる。 HalI と Robinson は、 VAX アーキテクチャのイ反想 化について述べている [ 8 ] 。 VAX は IA-32 アーキテク チャと同様に、本来は仮想化できす、 2 つ以上の保護リ ングをもつ。 HaIl と Robinson は、 VAX アーキテクチ ャとマイクロコードを変更している。これとは対照的に VMware のイ瓦想イは支術はハードウェアの修正をいっさい 要求しない。 Bugnion らは、大規模な NUMA マシンにおいてス ケーラブルな性能を実現するためにイ瓦想マシン技術を利用 している [ 3 ] 。はとんどの OS 製品は、大幅な修正を施さ ないかぎり大型の NUMA マシン上では動かない。しか し、 VMM を一から設言 t すれば、 こうしたマシンを管理 し、 OS 製品から NUMA の性質を隠すことができる。マ シンは、可能な数の CPU を複数の OS に割り当てたう えで複数の OS のイメージを実行できる。 VMware Workstation のホスト協調型イ瓦想マシン・ア ーキテクチャは、ユーサーレベルでの I/O デバイスの工 ミュレーションに依存している。これは、 OS の API を ユーサーレベルでエミュレートすることによって、 1 台の マシン上に複数のアプリケーション環境を作りだすマイク ロカーネルをベースとした OS (Mach[6] など ) と同様の ものである。最大の違いは抽象イである。イ瓦想マシンは ハードウェア層を抽象化するのに対し、マイクロカーネル は OS の API 層を抽象化する。 Härtig らは、マイクロ カーネルをベースとするシステムの生能を向上させる技術 について述べている [ 9 ] 。 本論文では、 VMware Workstation に実装されてい る VMware のホスト協調型イ課マシン・アーキテクチャ について解説した。このアーキテクチャにより、 VMware 174 Workstation は特別なデバイスドライバを使わすに幅広 い PC ハードウェアをサポートし、可搬性のある安定し た仮想ハードウェア環境を実現できる。また、一般的な OS 製品と共存可能なのでインストールや使用も簡単で、 VMM コンポーネントの開発も容易である。 ホスト協調型アーキテクチャの機能は、ホスト os の通 常のアプリケーションとして重川乍し、イ瓦想マシンに代わっ てネイテイプ・デバイスへの I/O を処理する VMApp と、 CPU を仮想化する VMM の 2 つに分けられる。大 量の I/O がともなうワークロードでは多くの牛罸在モード のコードカ躾行さ VMM からホストの VMApp へ領 域の、、重い " 切替えが必要になる。キーポードやマウスと いった或カ峡いデバイスではさほど重要ではないが、広 い帯域が必要なテンヾイスではネイテイプ・テンヾイスと同し I/O 性能を達成できない可能生がある。本論文では NIC の一瓦想化に焦点をおいた。これは VMware workstation 2.0 の最適化であり、 733MHz Pentium III の CPU 上 で重川乍するイ反想マシンが CPU の性能に制限されずにネッ トワークを使いきることかできるようにする。 実装されたすべての最適化の背後には、領域切替えの回 数を減らすという基本戦略がある。第 1 の最適化は、イ課 NIC に対する I/O アクセスのうち、バケットの送信を促 すものはごく一部であるという事実を利用したものだ。そ オ LJ ユ外はホスト・ハードウェアへのアクセスを要求しない ため、 VMM はホスト領域への切替えをおこなわすにそ れらを直接処理することができる。この最適化だけでも、 733MHz の CPU でネットワーク・リンクを使いきるこ とができるようになる。 第 2 の最適化は、残った領域切替えとそれ・らのオーバー ヘッドを減少させる。領域切替えの頻度が - ト分に大きい場 合は、バケットを送信するたびに即座に VMApp に切り 替えるのではなく、 VMM が最大 3 つのバケットを集めて から VMApp に切り替え、それらを一度に送信する。 のクラスタリングには、ネイテイプ NIC からの伝送 IRQ が、即時に領域切替えか要求される VMM 領域ではなく、 ( バケットが次々と送られれば ) ホスト領域に到着する可 能性か高まるという利点もある。 第 3 の最適化は、 VMNet ドライバと VMApp 間に 共有メモリを使用し、 VMApp から select() 呼出しを発 行する必要を減らす。この最適化によって VMApp は自 UNIX MAGAZINE 2002 ユ
自重加勺に得る。 VMM に専用の NIC ドライバが必要にな ると、ハードウェア・サポートの開発、テスト、更新に新 たな資金を投じなくてはならない。 前述のように、 VMM はそれぞ 1 つの仮想マシン に関連づけられている。複数の仮想マシンが I/O デバイ スを共有するためには、 VMM を拡張して、個々のイ廨課 マシンとそれらの VMM を認識する共有部分を追加する 必要がある。この共有部分は、実質上 VMM 領域を管理 するために設計されたカーネルである。これは、デバイ スを操作するだけでなく、 1 つの I/O デバイスを複数の VMM が共有するためのソフトウェアを提供しなければ ならない。この手法は、高速なテンヾイスに対してネイティ プの I/O 性能を達成することが重要な条件となる VM- ware ESX Server でイ吏用されている。 新しい技術を導入する際には、相互漣用性を寒し、互 換性を系旧寺することカ腰求される場合が多い。コンピュー タ・アーキテクチャと OS が進化すると、既存のソフト ウェアやアプリケーションとの互換性を糸財寺する必要カ吽 しる。イ反想マシン技術はハードウェア抽象イを提供する ことで、ハードウェアの差異を旧いソフトウェアから覆い 隠し、複数の互換性のないコンピューティンク環境を 1 台 のマシンに共存させる。 ネイテイブマシンと同じ性能を得ることは、仮想マシ ン技術の最大の目標である。イ瓦想マシンのコードをハード ウェアで直接実行できれば、マシンのシミュレーションや 工ミュレーションをベースとするはかの技術よりも圧倒的 に有利である。初期のメインフレームイ廨課マシンのサポー トに続いて、 IBM は仮想マシンの生能をさらに改善する ため、アーキテクチャの機能を次々と言した。 Gum は、 牛モードのゲスト命令を処理するオーバーヘッドのさら なる軽減、ゲストのメモリアドレスの変換、マルチ・プロ セッシングのサポートに関し、 IBM System/370 アーキ テクチャにおけるいくつかのハードウェアによるサポート について述べている [ 7 ] 。 Borden らは、メインフレームである IBM 3090 シ リーズのノヾーティション機能 PR/SM について述べてい る [ 2 ] 。この機能を利用すれば、特定のデバイス、 I/O チ UNIX MAGAZINE 2002.1 ASCII 好評発売中 ! インターネットの 起源 Where W 5 5 ね y up Late The Origins of The lnternet ・ Katie Hafner 、 Matthew Lyon 著 ・加地永都子、道田豪訳 ・ A5 判、 336 ページ ・ ISBN 4-7561-3479-3 ・本体 2 , 500 円 + 税 誤った“常識”を覆し、創設に携わった人びとの肉声を あますところなく伝える貴重な証言集 目次から 即断即決で 100 万ドル / 大聖堂を建てたのは誰か / 第 3 の 大学 / プログラムと格闘する日々 / トウルート宛必着 / ハッ キングと喧噪と / 電子メール / 手にしたロケット 参考文献、索引 Java プログラミング・ノート 国際化と 日本語処理 CAFE BABE ・風間一洋著 ・ A5 判、 312 ページ ・ ISBN 4-7561-3481-5 ・本体 3 , 000 円十税 Java による日本語処理、さらには国際化プログラミング に必須の知識を数多くのサンプル・プログラムを示し ながら平易に解説する。真の意味での "Write Once, RunAnywhe 「 e " を目指すプログラマーに最適の 1 冊。 目次から Java はどんな言語か / 国際化と地域化 / Unicode / ロケー ル / 工ンコーティング / タイムゾーン / リソースパンドル / フォ ーマット出力と解析 / 文字列の比較 / テキストの境界解析 / インブットメソッド / 文字の表示 付録 : Unicode プロック / ロケール一覧 / 工ンコーティング名 一覧 / タイムゾーン D 一覧 / ユーロ通貨記号への対応 株式会社アスキー 〒 1 5 ト 8024 東京都渋谷区代々木 4 ー 33 ー ] O 出版営業部 電話 (03) 535 ト 8 ] 94 173